Bashcript ile Linux üzerinde Timer(Zamanlayıcı) Yapımı

Linux üzerinde Timer(Zamanlayıcı) yapmak oldukça kolay, ben zamanı gelince bir mp3 dosyası çalarak alarm veren bir zamanlayıcı ihtiyacı duydum. Telefonda filan da zaten uygulamaları var ama bu mantığı birçok yerde kullanabilirsiniz. Örneğin belli aralıklarla  çalışan bir okul zili yapabilirsiniz.

Daha önce hiç bashscript yazmamışsanız korkmayın, oldukça kolay ve sade bir yapısı var. 

Şimdi Linux üzerinde mp3 dosyaları çalmak için birçok uygulama var, örneğin mpg123, aplay, cvlc, mplayer gibi. Ama en basitinen play alarmsabah.mp3 şeklinde komuttan play yanına mp3 dosyasının adını yazdığımızda çalışması için aşağıdaki kütüphaneleri ubuntu Linux üzerine kuralım, Debian ailesinden Pardus gibi başka Linux versiyonları üzerinde de deneyebilirsiniz.
 
Şimdi CTRL+ALT+T ile Ubuntu'da bir terminal(sonlandırıcı) ekranı açalım ve aşağıdaki komutları yazalım.


sudo apt install sox 
sudo apt install libsox-fmt-mp3


Ardından internetten bir alarmsabah.mp3 dosyası indirelim, bilgisayarınızdaki herhangi bir mp3 dosyası da olur, ismini alarmsabah.mp3 olarak değiştirebilirsiniz, çünkü kod içinde bu ismi verdik. Ardından yine terminal ekranında test.sh isimli bir dosya oluşturup içine kodlarımızı yazalım. Ben nano editörü kullandığım için aşağıdaki komutu verdim. Varsayılan olarak terminal /home klasöründe açılacağı için dosyalarınız burada oluşturulacaktır. Terminalde hangi klasörde olduğunu görmek için pwd yazıp Enter'a basabilirsiniz. Şimdi nano editörümüzü aşağıdaki komutla açalım.

sudo nano test.sh

Aşağıdaki kodları kopyalayıp yapıştırabilirsiniz. Kodlarımızı CTRL+C ile buradan kopyalayıp CTRL+V ile nano editörüne yapıştırdıktan sonra CTRL+X ile çıkabilirsiniz. Size "Save modified buffer?" şeklinde bir soru soracak, YES(Y) yani sadece Y tuşuna basıp çıkabilirsiniz.

#!/usr/bin/bash
 
tput clear
 
clock() {
    while sleep 1; do 
        tput sc
        tput cup 0 $(($(tput cols)/3))
        tput rev
        date
        tput rc
    done
}
 
read -p "Saniye giriniz(Enter seconds): " tm
clock &
clock_pid=$!
 
while sleep 1; do
    tm=$(($tm - 1))
    if [ "$tm" -lt 1 ]; then
        kill "$clock_pid"
        echo -e ''$_{1..70}'\b─'
        echo -e ''$"TIME IS UP"{1..6}'\b '
        echo -e ''$_{1..70}'\b─'
        play  "alarmsabah.mp3"
        exit
    fi
done
 


Kodlarımızı yazdıktan sonra ls komutu ile dizin içini listeleyip dosyaları görebilirsiniz. Oluşturduğumuz test.sh ve alarm.mp3 dosyası aynı klasörde olmalıdır. Ardından aşağıdaki komutla çalıştırabilirsiniz.

bash test.sh

Ardından sizden saniye girmeniz istenecektir. Saniyeyi 5 saniye girerek sonuca görebilirsiniz. Artık bundan sonra kaç dakikada isterseniz onun 60 katını saniye olarak girip çalıştırabilirsiniz.






Mutlu Kodlamalar,
Oğuzhan TAŞ
Ağustos, 2024

Bookmark and Share